Lecture 5. Combinational Testing
The inputs to the software is called the Causes;
The associated output is called the Effects。
常见工具
- 真值表 truth table
- 因果图 cause-effect graph
- 判定表 decision table
- 正交实验设计 orthogonal experimental design
真值表
The inputs to the software is called the Causes;The associated output is called the Effects。
- $2^n$ 种组合
- 一个条件就要么真要么假,两个就需要考虑组合
- 如果遇到逻辑上不可能成立的组合,就可以删掉
- don't care 条件,类似于卡诺图啥的,在这里依然存在。可以用于减少组合的数量。
- 关于判断 $l \leq x \leq r$ 的条件,需要拆点,大概是拆成 $x < l$ 和 $x \leq r$ 两个,有点 2-sat 的感觉,具体怎么拆,参考下图课件
- 对于不合法的输入,可以不用往真值表里面塞,起到精简的作用。
因果图
用于分析组合条件的关系。是有向图。看懂就行,不做要求。
判定表
- 条件桩 condition stub
- 动作桩 action stub
- 条件项 condition item
- 动作项 action item
桩大概是行的意思,项大概是格的意思
假设有 $n$ 个条件桩,那么最多有 $2^n$ 列。同样可以用 don't care 来精简。
正交实验设计
感觉像是一种奇技淫巧(黑科技),比如对于三个布尔条件,可以均衡的把真值表 8 个缩成 4 个测试。
正交表已经有现成的了,可以直接查 https://www.york.ac.uk/depts/maths/tables/orthogonal.htm:
- L4: Three two-level factors
- L8: Seven two-level factors
- L9 : Four three-level factors
- L12: Eleven two-level factors
- L16: Fifteen two-level factors
- L16b: Five four-level factors
L 后面的数字代表这个表有几行。可见,七个布尔变量,如果用真值表需要 128 个测试点,这里仅需 8 行(个测试点)